10      PRINT
20      PRINTU 555/2708 PROGRAMMER
30      PRInT
60      DA = 16:CA = 17:DB = 18:CB = 19:REM Ports festlegen
70      OUT CB, & CF: OUT CB, & 80: REM Bitmode, Bit 7 Eingabe
80      OUT CA, &7F: REM Byteeingabe
90      OUT DB, & 21: REM Spannungen aus, Zhlerreset.
100      INPUT LESEK(l) PROG(2) VERGLEICHEN(3) LSCHTEST(4); M
110      IF M > 4 THEN END 
120      ON M GOSUB 250,320,550,140 
130      GOTO 90 
140      REM Lschkontrolle 
150      OUT CA, & 7F: REM Byteeingabe 
160      OUT DB, & 29: OUT DB, &2D: REM Zhlerrest 
170      F = 0: REM Flag
180      FOR I= 1 TO 1024 : IF INP(DA)<>&FF THEN F = 1 : I = 1024
190      OUT DB, & 2C: OUT DB, & 2D: REM weiterzhlen
200      NEXT I
210      PRINTEPROM; :IF F= 1 THEN PRINT NICHT;
220      PRINT GELSCHT": RETURN
250      REM Dublizieren des EPROM-Inhalts ins RAM
260      INPUT ADRESSE; A
270      OUT CA, &7F: REM Byteeingabe
280      OUT DB, & 29 OUT DB, & 2D: REM Reset
290      FOR I = A TO A + 1023 : POKE I,INP(DA)
300      OUT DB, & 2C: OUT DB, & 2D: REM weiterzhlen
310      NEXT I: RETURN
320      REM programmieren
330      INPUT ADRESSE; A: GOSUB 150: IF F = 1 THEN INPUT WEITER (J/N); W$: IF W$ <> J THEN RETURN
340      PRINT: Z = 0: REM Zykluszhler = 0
350      N = 2: GOSUB 430: REM 2 Programmierversuche
360      REM Prflesen
370      OUT CA & 7F: OUT DB, & 2D: OUT DB, & 29: OUT DB,&2D
380      F=0: FOR I=A TO A+1023: IF INP(DA)<>PEEK(I) THEN F=1 : I = A + 1024 
390      OUT DB, & 2C:OUT DB, & 2D : NEXT I
400      IF F = 1 AND Z < 32 THEN 350
410      IF F = 1 THEN PRINT NICHT PROGRAMMIERT;: GOTO 520
420      PRINT: N = Z/2: GOSUB 430: GOTO 520: REM Sicherheitszyklen
430      OUT DB, & 29: OUT DB, & 19: OUT DB, & 1D: REM Zhlerreset und Spannungen anlagen
440      OUT CA, & F: REM Byteausgabe
450      FOR I=1 TO N: Z =Z+1: PRINT CHR$ (&B);USING PROG ZYKLUS # # #; Z
460      OUT DB, & 19: OUT DB, & 1D: REM Zhler rcksetzen
470      FOR I = A TO A + 1023:OUT DA,PEEK(I)
475      REM Programmierimpuls erzeugen und weiterzhlen
480      OUT DB, & 5D: OUT DB, & 1D: OUT DB, & 1C: OUT DB, & 1D
490      NEXT I, J: RETURN
500      REM Auf Fertigsignal (Bit 7) wird nicht gewartet, weil Schleifenlaufzeit > 1 ms
510      OUT CA, & 7F: REM Byteeingabe
520      OUT DB, & 2D: REM Auf Lesen schalten
525      REM Prflesen, anschlieend Signalton
530      GOSUB 560: OUT 5,0: FOR I = 1 TO 500: NEXT I: OUT 4,0
540      R ETURN
550      INPUT ADRESSE; A
560      OUT CA, &7F: REM Byteeingabe
570      OUT DB, & 29: OUT DB, & 2D: REM Zhler rcksetzen
580      E = 0:FOR I = A TO A + 1O23
590      IF INP (DA) <> PEEK (I) THEN E = E + 1
600      OUT DB, & 2C: OUT DB, & 2D: REM weiterzhlen
610      NEXT I: PRINT E; FEHLER: RETURN
